﻿#!/usr/bin/perl
use Time::Local; 
use POSIX qw(strftime); 
# 1 czerwca 2008, 17:32:11 i 844 milisekundy .
$year  = 2008; 
$month = 5;      # Miesiące są numerowane, począwszy od 0! 
$day   = 1; 
$hour  = 17;     # w celu zapewnienia lepszej czytelności skorzystamy z 24-godzinnego zegara 
$min   = 32; 
$sec   = 11; 
$msec  = 844; 

# Czas w formacie UNIX (liczba sekund od 1 stycznia 1970 roku)     1212355931 
$unixtime = timelocal( $sec, $min, $hour, $day, $month, $year ); 
print "UNIX\t\t\t$unixtime\n"; 

# Wypełniamy danymi kilka wartości (wday, yday, isdst), które będą potrzebne do wykonania funkcji strftime. 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($unixtime);

# YYYYMMDDhhmmss.sss    20080601173211.844 
# Wykorzystujemy funkcję strftime(), ponieważ uwzględnia ona numerowanie miesięcy od zera, które jest typowe dla Perla.
$timestring = strftime( "%Y%m%d%H%M%S",
    $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ); 
$timestring .= ".$msec"; 
print "YYYYMMDDhhmmss.sss\t$timestring\n"; 

# YYMMDDhhmm  0806011732 
$timestring = strftime( "%y%m%d%H%M", $sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst );
print "YYMMDDhhmm\t\t$timestring\n"; 

# POSIX według standardu języka "C" Nie Cze  1 17:32:11 2008
$gmtime = localtime($unixtime); 
print "POSIX\t\t\t$gmtime\n";
